The present disclosure relates generally to information handling systems, and more particularly to updating memory devices in an information handling system.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems such as, for example, server computing devices, desktop computing devices, laptop computing devices, and/or other computing devices known in the art, are now being provided with memory devices that may be updated with software. For example, Non-Volatile Dual Inline Memory Modules (NVDIMMs) provided with computing devices may include firmware that may be updated. However, the updating of memory devices such as NVDIMMs suffers from a variety of issues. Conventional methods for updating an NVDIMM requires the copying of updated firmware to the NVDIMM, and then performing a firmware-update-specific reboot in order to have that updated firmware applied to the NVDIMM by an on-NVDIMM controller. For example, some conventional computing devices utilize an Operating System (OS) based utility that performs a command handshake over the System Management bus (SMBUS) and then operates to transfer the updated firmware over the SMBUS to the NVDIMM, which is followed by a reboot of the computing device that causes the updated firmware to be applied to the NVDIMM. However, such conventional methods are relatively slow due to the relatively slow data transfer speeds provided by the SMBUS, and require the firmware-update-specific reboot in order to have the updated firmware applied to the NVDIMM, which takes the computing device “offline” or otherwise makes that computing device unavailable for use for a period of time. Furthermore, the ability to provide firmware updates using such conventional methods is in question, as the SMBUS interface to the NVDIMMs may be locked post-boot. One solution to providing firmware updates on NVDIMMs when the SMBUS interface is locked post-boot is to store the updated firmware on a motherboard memory device and then force a reboot that causes a driver in the Basic Input Output System (BIOS) to install the updated firmware via the SMBUS, which suffers from the issues discussed above. It has been suggested that firmware updates may be provided post-boot via the BIOS, but such firmware updates would entail the BIOS performing piecemeal copying of the updated firmware over the SMBUS using periodic System Management Interrupts (SMIs), which could impact computing device performance, and would still utilize the relatively slow data transfer speed SMBUS.
Accordingly, it would be desirable to provide an improved memory device update system.